# Erstellt von Jörn Walter https://www.der-windows-papst.de

### RootCA
openssl.exe genrsa -aes256 -out .\RootCA\RootCA.key.pem 4096
openssl.exe req -config openssl.cfg -key .\RootCA\RootCA.key.pem -new -x509 -days 7400 -sha256 -extensions v3_ca -out .\RootCA\RootCA.cert.pem
###

### SubCA signiert durch RootCA
openssl genrsa -out .\subca\SubCA.key 4096
openssl req -new -key .\subca\SubCA.key -out .\subca\SubCA.csr
openssl x509 -req -days 3650 -in .\subca\SubCA.csr -CA .\RootCA\RootCA.cert.pem -CAkey .\RootCA\RootCA.key.pem -CAcreateserial -out .\subca\SubCA.crt -extfile openssl.cfg -extensions v3_ica
###

### Privat-Key und Request für Server1 erstellen
openssl.exe genrsa -out .\ServerKeys\Server1.key -aes256
openssl req -new -key .\ServerKeys\Server1.key -out .\requests\Server1.csr
###

### Request von Server 1 signieren durch SubCA > Cert v1
openssl x509 -req -days 730 -in .\requests\Server1.csr -CA .\SubCA\SubCA.crt -CAkey .\SubCA\SubCA.key -set_serial 0001 -out .\Certs\Server1.crt
###

### Request von Server 1 signieren durch SubCA > Cert v3
openssl x509 -req -days 730 -in .\requests\Server1.csr -CA .\SubCA\SubCA.crt -CAkey .\SubCA\SubCA.key -set_serial 0002 -out .\Certs\Server1.crt -extensions v3_ext -extfile .\ext3.cfg
###

### Server1 Zertifikat in PFX umwandeln
openssl.exe pkcs12 -export -out .\ServerKeys\Server1.pfx -inkey .\ServerKeys\Server1.key -in Certs\Server1.crt
###

### Bilden einer Zertifikatskette aus RootCA und SubCA
type .\subca\SubCA.crt .\RootCA\RootCA.cert.pem > certs\CA-Chain.pem
###

### Server1 Zertifikat in PFX umwandeln und Chain bilden
openssl.exe pkcs12 -export -out .\ServerKeys\Server1.pfx -inkey .\ServerKeys\Server1.key -in Certs\Server1.crt -certfile .\Certs\CA-Chain.pem
###

### Zertifikat anhand der Chain prüfen
openssl.exe verify -CAfile .\certs\CA-Chain.pem -verbose .\Certs\Server1.crt
###